package com.hsp.demo_10.codeblock;

import com.sun.org.apache.bcel.internal.generic.NEW;

public class Demo_03 {
    public static void main(String[] args) {
//        BB bb = new BB();
//        DD dd = new DD();
        EE ee = new EE();
    }
}

//1、new的时候会加载类，从而调用静态代码块
class BB{
    static{
        System.out.println("BB的静态代码块");
    }
}

class CC{
    static{
        System.out.println("CC的静态代码块");
    }
}

//2、new子类对象的时候会先加载父类，再加载本类，从而静态代码块会被执行
class DD extends CC{
    static{
        System.out.println("DD的静态代码块");
    }
}

//3、在调用静态代码块时，会加载类，从而调用静态代码块， 同时切记，不论类如何加载，一定会先加载父类
class EE{
    public static int count = 1;

    static{
        System.out.println("EE的静态代码块");
    }
}